﻿using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Dye_CC;
using Dye_Lib;

namespace Dye_testlib
{
    [TestClass]
    public class UT_UC005
    {
        private Project project = Project.Instance;

        /// <summary>
        /// Beschrijving:   Controleer of er een nieuw diagram toegevoegd kan worden, als er een project bestaat.
        /// Verwacht:       True,   1
        /// Reden:          Er is 1 diagram toegevoegd.
        /// </summary>
        [TestMethod]
        public void UC005_TestMethod1()
        {
            project.Nieuw(0, 0);
            Assert.AreEqual(true, project.NieuwDiagram(DiagramType.KlassenDiagram));
            Assert.AreEqual(1, project.Diagrammen.Count);
        }

        /// <summary>
        /// Beschrijving:   Controleer of er een nieuw diagram toegevoegd kan worden, als er géén project bestaat.
        /// Verwacht:       False,  2
        /// Reden:          Er bestaat geen project en er zijn 2 diagrammen toegevoegd.
        /// </summary>
        [TestMethod]
        public void UC005_TestMethod2()
        {
            Assert.AreEqual(false, project.NieuwDiagram(DiagramType.KlassenDiagram));
            project.Nieuw(0, 0);
            Assert.AreEqual(true, project.NieuwDiagram(DiagramType.KlassenDiagram));
            Assert.AreEqual(true, project.NieuwDiagram(DiagramType.KlassenDiagram));
            Assert.AreEqual(2, project.Diagrammen.Count);
        }

        /// <summary>
        /// Beschrijving:   Controleer of alle 4 de verschillende diagrammen worden aangemaakt.
        /// Verwacht:       True, 4
        /// Reden:          Er zijn 4 diagrammen toegevoegd.
        /// </summary>
        [TestMethod]
        public void UC005_TestMethod3()
        {
            project.Nieuw(0, 0);
            Assert.AreEqual(true, project.NieuwDiagram(DiagramType.KlassenDiagram));
            Assert.AreEqual(true, project.NieuwDiagram(DiagramType.SequenceDiagram));
            Assert.AreEqual(true, project.NieuwDiagram(DiagramType.ComponentenDiagram));
            Assert.AreEqual(true, project.NieuwDiagram(DiagramType.ActivityDiagram));
            Assert.AreEqual(4, project.Diagrammen.Count);
        }
    }
}